package pe.gob.mimp.dao.impl;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.MatchMode;
import org.hibernate.criterion.Restrictions;
import org.springframework.stereotype.Repository;

import pe.gob.mimp.dao.CombosDao;
import pe.gob.mimp.model.*;

@Repository
public class CombosDaoImpl extends AbstractDaoImpl<TablaParametrica, Long>
		implements CombosDao {

	protected CombosDaoImpl() {
		super(TablaParametrica.class);
	}

	public TablaParametrica getTablaParametricaPorId(Long idTabla) {
		return findById(idTabla);
	}

	@SuppressWarnings("unchecked")
	public List<TablaParametrica> getLista(String tabla) {
		return findByCriteria(Restrictions.like("nombreTabla", tabla,
				MatchMode.START));
	}

	@SuppressWarnings("unchecked")
	public List<TablaParametrica> getListaHijos(String tabla,
			Long relacionCodigo) {
		Criteria criteria = getCurrentSession().createCriteria(
				TablaParametrica.class);
		criteria.add(Restrictions.eq("tablaRelacion", tabla)).add(
				Restrictions.eq("relacionCodigo", relacionCodigo));
		return criteria.list();
	}
}
